package QianFeng14;

/**
 * 定义一个枚举类型
 * 使用enum关键字定义的枚举类，实际上就相当于定义了一个类，此类继承了Enum类而已。
 * Enum类中定义了如下的方法:
 * protected Enum(String name,int ordinal)
 *      此构造方法不能被外部直接调用，只能被其子类访问，此构造方法为自动调用。
 * public final String name()
 *      枚举的名字
 * public final int ordinal
 *      枚举的序号
 **/
public enum Color implements Info{
    //相当于Color对象
    RED{ //实现抽象方法
        @Override
        public String getColor2() {
            return "red";
        }
    },GREEN {
        @Override
        public String getColor2() {
            return "green";
        }
    },BLUE(10) {
        @Override
        public String getColor2() {
            return "blue";
        }
    };
    private int color;

    //构造方法只能是私有的
    private Color(int color) {
        this.color = color;
        System.out.println("有参构造器");
    }
    private Color() {
        System.out.println("无参构造器");
    }

    @Override
    public int getColor() {
        return color;
    }

    public abstract String getColor2();
}
